// 
// Bachelor of Software Engineering
// Media Design School
// Auckland
// New Zealand
//
// (c) 2005 - 2014 Media Design School
//
// File Name	: HighscoreScreenView.h
// Desrciption	: CHighscoreScreenView declaration file.
// Author		: Hayden Asplet.
// Mail			: hayden.asplet@mediadesignschool.com
//

#pragma once

#ifndef __HIGHSCORESCREENVIEW_H__
#define __HIGHSCORESCREENVIEW_H__

// Library Includes

// Local Includes
#include "../GameFramework/GameView/HumanView.h"
#include "HighscoreEntry.h"

class CHighscoreScreenView : public CHumanView {
	// Member Functions
public:
	CHighscoreScreenView(std::vector<CHighScoreEntry>* _pHighscores);
	virtual ~CHighscoreScreenView();

	virtual void VUpdate(float _fDeltaTime);
	virtual void VRender(float _fDeltaTime);
	virtual bool VMsgProc(const CAppMsg& _krMsg);
protected:
private:

	// Member Variables
public:
	static const int s_kiMAX_SCORES_TO_SHOW;
	static const int s_kiNAME_SIZE;
	static const int s_kiVERTICAL_OFFSET;
	static const int s_kiNAME_POS_X;
	static const int s_kiSCORE_POS_X;
	static const int s_kiPOS_Y;
	static const int s_kiCHAR_WIDTH;
	static const float s_kfFLASH_TIME;
protected:
private:
	CSprite m_background;

	std::vector<CHighScoreEntry>* m_pHighscores;	// The list of scores.

	std::string m_strPlayerName;	// The player's name that is being entered.

	float m_fFlashTimer;	// The timer since last flash.
	bool m_bIsFlash;		// False if an underscore should be displayed, true if not.
};

#endif